//
//  HomeViewController.swift
//  夏祖强的新浪微博
//
//  Created by 夏祖强 on 16/5/10.
//  Copyright © 2016年 夏祖强. All rights reserved.
//

import UIKit

private let CZStatusCellID = "CZStatusCellID"
class HomeViewController: RootViewController {

    override func viewDidLoad() {
        //设置刷新控件
        setupRefreshControl()
       
        super.viewDidLoad()
    
        //注册可重用Cell
        tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: CZStatusCellID)
        
        //设置访客视图信息
        visitorView?.setupInfo(message: "关注一些人,回这里看看有什么惊喜")
    }

    //接收到内存警告!
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

        if self.view.window == nil {
        //1.清理数组
        self.dataList.removeAll()
        //2.刷新数据
        self.loadData()
        }
    }

    override func loadData() {
        
        let defaultIndex = 100
        //1.判断是否时上拉刷新,如果上啦刷新,动画启动,认为上拉
        let ispullup = pullupView.isAnimating()
        
        //如果是下拉刷新
        if !ispullup{
            //只会显示菊花,不会触发方法
            refreshControl.beginRefreshing()
        }
        //模拟异步加载数据
        dispatch_async(dispatch_get_global_queue(0, 0)){
        () ->Void in
            
            //模拟网络延迟3s,-sleepForTimeInterval ,同步的,不执行完,不会执行后续代码
            //堵塞线程/当前线程再睡眠期间,不响应任何事件!
            //提示 :商业应用程序中 千万不用
            NSThread.sleepForTimeInterval(3.0)
            //下拉刷新索引,获取丨族的地灵条数据
            let pulldownIndex = self.dataList.first ?? defaultIndex
            //上拉刷新索引,获取数组最后一天记录
            let pullupIndex = self.dataList.last ?? 0
            //如果上啦,顺序加载,下啦 ,倒序
            var arrayM = [Int]()
            if ispullup{
                for i in 0..<10{
                arrayM.append(pullupIndex - i - 1)
                }
            }else{
                for i in (0..<10).reverse(){
                    arrayM.append(i + pulldownIndex + 1)
                }
            }
            // 上拉刷新,将数据追加倒数组  末尾
            if ispullup{
                self.dataList += arrayM
            }else{
            self.dataList = arrayM + self.dataList
            }
            //更新UI
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                //关闭刷新
                self.refreshControl.endRefreshing()
                //停止上啦刷新视图的动画
                self.pullupView.stopAnimating()
                //刷新数据
                self.tableView.reloadData()
            })
        }
    }
    
    // 是有属性
    private lazy var dataList = [Int]()


}

extension HomeViewController {

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataList.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier(CZStatusCellID, forIndexPath: indexPath)
        
        cell.textLabel?.text = dataList[indexPath.row].description
        
        return cell
    }

}
